package cn.getword.cnblogs.util;

import org.apache.commons.lang3.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 *  Copyright : 江苏金恒信息科技有限公司 NISCO
 *  Author : Jiang Bin(860012)
 *  System : 系统说明
 *  Target : 功能说明
 *  Create : 2013-5-8 下午1:35:36
 *  Update : 2013-5-8 下午1:35:36
 */
public class StringTools {

	/**
	 * 取出空格并将null转换为""
	 * @param str
	 * @return
	 * @author Jiang Bin 2013-5-8 下午1:37:17
	 */
	public static String deleteWhitespaceAndNull(String str) {
		return StringUtils.defaultString(StringUtils.deleteWhitespace(str));
	}

	/**
	 * 填充左边0
	 * @param str
	 * @param size
	 * @return
	 * @author sunanjun 2013-6-13 下午12:17:01
	 */
	public static String formatLeftPadZero(String str, int size) {
		return StringUtils.leftPad(str, size, '0');
	}

	/**
	 * 根据指定的长度来格式左边字符串
	 * @param str,要格式化的字符串
	 * @param size,总长度，不足长度时以padChar进行左边填充
	 * @param padChar
	 * @return
	 * @author sunanjun 2013-6-13 下午12:15:59
	 */
	public static String formatLeftPadString(String str, int size, char padChar) {
		return StringUtils.leftPad(str, size, padChar);
	}

	/**
	 * 
	 *<p>Title: toString<／p>
	 *<p>Description:将对象转为字符形式 多适用于从Map取值 <／p>
	 *author：Bruce Xu
	 *@date: 2013-9-22
	 * @param obj
	 * @return
	 */
	public static String toString(Object obj) {
		String resultStr = "";
		if (obj != null) {
			resultStr = obj.toString();
		}
		return resultStr;
	}

	/**
	 *<p>Title: delHTMLTag<／p>
	 *<p>Description:去html标签元素<／p>
	 *author：Bruce Xu
	 *@date: 2014-1-28
	 * @param htmlStr
	 * @return
	 */
	public static String delHTMLTag(String htmlStr) {
		String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式 
		String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式 
		String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式 

		Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
		Matcher m_script = p_script.matcher(htmlStr);
		htmlStr = m_script.replaceAll(""); //过滤script标签 

		Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
		Matcher m_style = p_style.matcher(htmlStr);
		htmlStr = m_style.replaceAll(""); //过滤style标签 

		Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
		Matcher m_html = p_html.matcher(htmlStr);
		htmlStr = m_html.replaceAll(""); //过滤html标签 

		return htmlStr.trim(); //返回文本字符串 
	}

	/**
	 * 
	 *<p>Title: nullToEmpty<／p>
	 *<p>Description: 如果字符串是null的话，返回空字串 <／p>
	 *author：Bruce Xu
	 *@date: 2014-4-29
	 * @param s
	 * @return
	 */
	public static String nullToEmpty(String s) {
		return (s == null ? "" : s.trim());
	}

	/** 
	* @Title: isEmpty
	* @author：xupz
	* @date 2018年10月19日 上午9:55:49 
	* @Description: 判断是否是空字符串或者null
	* @return boolean
	*/
	public static boolean isEmpty(String str) {
		return str == null || "".equals(str);
	}
}
